(function ($, undefined){ 'use strict'; var defaults={ item: 3, autoWidth: false, slideMove: 1, slideMargin: 10, addClass: '', mode: 'slide', useCSS: true, cssEasing: 'ease', //'cubic-bezier(0.25, 0, 0.25, 1)', easing: 'linear', //'for jquery animation',// speed: 400, //ms' auto: false, pauseOnHover: false, loop: false, slideEndAnimation: true, pause: 2000, keyPress: false, controls: true, prevHtml: '', nextHtml: '', rtl: false, adaptiveHeight: false, vertical: false, verticalHeight: 500, vThumbWidth: 100, thumbItem: 10, pager: true, gallery: false, galleryMargin: 5, thumbMargin: 5, currentPagerPosition: 'middle', enableTouch: true, enableDrag: true, freeMove: true, swipeThreshold: 40, responsive: [], onBeforeStart: function ($el){}, onSliderLoad: function ($el){}, onBeforeSlide: function ($el, scene){}, onAfterSlide: function ($el, scene){}, onBeforeNextSlide: function ($el, scene){}, onBeforePrevSlide: function ($el, scene){} }; $.fn.lightSlider=function (options){ if(this.length===0){ return this; } if(this.length > 1){ this.each(function (){ $(this).lightSlider(options); }); return this; } var plugin={}, settings=$.extend(true, {}, defaults, options), settingsTemp={}, $el=this; plugin.$el=this; if(settings.mode==='fade'){ settings.vertical=false; } var $children=$el.children(), windowW=$(window).width(), breakpoint=null, resposiveObj=null, length=0, w=0, on=false, elSize=0, $slide='', scene=0, property=(settings.vertical===true) ? 'height':'width', gutter=(settings.vertical===true) ? 'margin-bottom':'margin-right', slideValue=0, pagerWidth=0, slideWidth=0, thumbWidth=0, interval=null, isTouch=('ontouchstart' in document.documentElement); var refresh={}; refresh.chbreakpoint=function (){ windowW=$(window).width(); if(settings.responsive.length){ var item; if(settings.autoWidth===false){ item=settings.item; } if(windowW < settings.responsive[0].breakpoint){ for (var i=0; i < settings.responsive.length; i++){ if(windowW < settings.responsive[i].breakpoint){ breakpoint=settings.responsive[i].breakpoint; resposiveObj=settings.responsive[i]; }} } if(typeof resposiveObj!=='undefined'&&resposiveObj!==null){ for (var j in resposiveObj.settings){ if(resposiveObj.settings.hasOwnProperty(j)){ if(typeof settingsTemp[j]==='undefined'||settingsTemp[j]===null){ settingsTemp[j]=settings[j]; } settings[j]=resposiveObj.settings[j]; }} } if(!$.isEmptyObject(settingsTemp)&&windowW > settings.responsive[0].breakpoint){ for (var k in settingsTemp){ if(settingsTemp.hasOwnProperty(k)){ settings[k]=settingsTemp[k]; }} } if(settings.autoWidth===false){ if(slideValue > 0&&slideWidth > 0){ if(item!==settings.item){ scene=Math.round(slideValue / ((slideWidth + settings.slideMargin) * settings.slideMove)); }} }} }; refresh.calSW=function (){ if(settings.autoWidth===false){ slideWidth=(elSize - ((settings.item * (settings.slideMargin)) - settings.slideMargin)) / settings.item; }}; refresh.calWidth=function (cln){ var ln=cln===true ? $slide.find('.lslide').length:$children.length; if(settings.autoWidth===false){ w=ln * (slideWidth + settings.slideMargin); }else{ w=0; for (var i=0; i < ln; i++){ w +=(parseInt($children.eq(i).width()) + settings.slideMargin); }} return w; }; plugin={ doCss: function (){ var support=function (){ var transition=['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition']; var root=document.documentElement; for (var i=0; i < transition.length; i++){ if(transition[i] in root.style){ return true; }} }; if(settings.useCSS&&support()){ return true; } return false; }, keyPress: function (){ if(settings.keyPress){ $(document).on('keyup.lightslider', function (e){ if(!$(':focus').is('input, textarea')){ if(e.preventDefault){ e.preventDefault(); }else{ e.returnValue=false; } if(e.keyCode===37){ $el.goToPrevSlide(); }else if(e.keyCode===39){ $el.goToNextSlide(); }} }); }}, controls: function (){ if(settings.controls){ $el.after('
' + settings.prevHtml + '' + settings.nextHtml + '
'); if(!settings.autoWidth){ if(length <=settings.item){ $slide.find('.lSAction').hide(); }}else{ if(refresh.calWidth(false) < elSize){ $slide.find('.lSAction').hide(); }} $slide.find('.lSAction a').on('click', function (e){ if(e.preventDefault){ e.preventDefault(); }else{ e.returnValue=false; } if($(this).attr('class')==='lSPrev'){ $el.goToPrevSlide(); }else{ $el.goToNextSlide(); } return false; }); }}, initialStyle: function (){ var $this=this; if(settings.mode==='fade'){ settings.autoWidth=false; settings.slideEndAnimation=false; } if(settings.auto){ settings.slideEndAnimation=false; } if(settings.autoWidth){ settings.slideMove=1; settings.item=1; } if(settings.loop){ settings.slideMove=1; settings.freeMove=false; } settings.onBeforeStart.call(this, $el); refresh.chbreakpoint(); $el.addClass('lightSlider').wrap('
'); $slide=$el.parent('.lSSlideWrapper'); if(settings.rtl===true){ $slide.parent().addClass('lSrtl'); } if(settings.vertical){ $slide.parent().addClass('vertical'); elSize=settings.verticalHeight; $slide.css('height', elSize + 'px'); }else{ elSize=$el.outerWidth(); } $children.addClass('lslide'); if(settings.loop===true&&settings.mode==='slide'){ refresh.calSW(); refresh.clone=function (){ if(refresh.calWidth(true) > elSize){ var tWr=0, tI=0; for (var k=0; k < $children.length; k++){ tWr +=(parseInt($el.find('.lslide').eq(k).width()) + settings.slideMargin); tI++; if(tWr >=(elSize + settings.slideMargin)){ break; }} var tItem=settings.autoWidth===true ? tI:settings.item; if(tItem < $el.find('.clone.left').length){ for (var i=0; i < $el.find('.clone.left').length - tItem; i++){ $children.eq(i).remove(); }} if(tItem < $el.find('.clone.right').length){ for (var j=$children.length - 1; j > ($children.length - 1 - $el.find('.clone.right').length); j--){ scene--; $children.eq(j).remove(); }} for (var n=$el.find('.clone.right').length; n < tItem; n++){ $el.find('.lslide').eq(n).clone().removeClass('lslide').addClass('clone right').appendTo($el); scene++; } for (var m=$el.find('.lslide').length - $el.find('.clone.left').length; m > ($el.find('.lslide').length - tItem); m--){ $el.find('.lslide').eq(m - 1).clone().removeClass('lslide').addClass('clone left').prependTo($el); } $children=$el.children(); }else{ if($children.hasClass('clone')){ $el.find('.clone').remove(); $this.move($el, 0); }} }; refresh.clone(); } refresh.sSW=function (){ length=$children.length; if(settings.rtl===true&&settings.vertical===false){ gutter='margin-left'; } if(settings.autoWidth===false){ $children.css(property, slideWidth + 'px'); } $children.css(gutter, settings.slideMargin + 'px'); w=refresh.calWidth(false); $el.css(property, w + 'px'); if(settings.loop===true&&settings.mode==='slide'){ if(on===false){ scene=$el.find('.clone.left').length; }} }; refresh.calL=function (){ $children=$el.children(); length=$children.length; }; if(this.doCss()){ $slide.addClass('usingCss'); } refresh.calL(); if(settings.mode==='slide'){ refresh.calSW(); refresh.sSW(); if(settings.loop===true){ slideValue=$this.slideValue(); this.move($el, slideValue); } if(settings.vertical===false){ this.setHeight($el, false); }}else{ this.setHeight($el, true); $el.addClass('lSFade'); if(!this.doCss()){ $children.fadeOut(0); $children.eq(scene).fadeIn(0); }} if(settings.loop===true&&settings.mode==='slide'){ $children.eq(scene).addClass('active'); }else{ $children.first().addClass('active'); }}, pager: function (){ var $this=this; refresh.createPager=function (){ thumbWidth=(elSize - ((settings.thumbItem * (settings.thumbMargin)) - settings.thumbMargin)) / settings.thumbItem; var $children=$slide.find('.lslide'); var length=$slide.find('.lslide').length; var i=0, pagers='', v=0; for (i=0; i < length; i++){ if(settings.mode==='slide'){ if(!settings.autoWidth){ v=i * ((slideWidth + settings.slideMargin) * settings.slideMove); }else{ v +=((parseInt($children.eq(i).width()) + settings.slideMargin) * settings.slideMove); }} var thumb=$children.eq(i * settings.slideMove).attr('data-thumb'); if(settings.gallery===true){ pagers +='
  • '; }else{ pagers +='
  • ' + (i + 1) + '
  • '; } if(settings.mode==='slide'){ if((v) >=w - elSize - settings.slideMargin){ i=i + 1; var minPgr=2; if(settings.autoWidth){ pagers +='
  • ' + (i + 1) + '
  • '; minPgr=1; } if(i < minPgr){ pagers=null; $slide.parent().addClass('noPager'); }else{ $slide.parent().removeClass('noPager'); } break; }} } var $cSouter=$slide.parent(); $cSouter.find('.lSPager').html(pagers); if(settings.gallery===true){ if(settings.vertical===true){ $cSouter.find('.lSPager').css('width', settings.vThumbWidth + 'px'); } pagerWidth=(i * (settings.thumbMargin + thumbWidth)) + 0.5; $cSouter.find('.lSPager').css({ property: pagerWidth + 'px', 'transition-duration': settings.speed + 'ms' }); if(settings.vertical===true){ $slide.parent().css('padding-right', (settings.vThumbWidth + settings.galleryMargin) + 'px'); } $cSouter.find('.lSPager').css(property, pagerWidth + 'px'); } var $pager=$cSouter.find('.lSPager').find('li'); $pager.first().addClass('active'); $pager.on('click', function (){ if(settings.loop===true&&settings.mode==='slide'){ scene=scene + ($pager.index(this) - $cSouter.find('.lSPager').find('li.active').index()); }else{ scene=$pager.index(this); } $el.mode(false); if(settings.gallery===true){ $this.slideThumb(); } return false; }); }; if(settings.pager){ var cl='lSpg'; if(settings.gallery){ cl='lSGallery'; } $slide.after(''); var gMargin=(settings.vertical) ? 'margin-left':'margin-top'; $slide.parent().find('.lSPager').css(gMargin, settings.galleryMargin + 'px'); refresh.createPager(); } setTimeout(function (){ refresh.init(); }, 0); }, setHeight: function (ob, fade){ var obj=null, $this=this; if(settings.loop){ obj=ob.children('.lslide ').first(); }else{ obj=ob.children().first(); } var setCss=function (){ var tH=obj.outerHeight(), tP=0, tHT=tH; if(fade){ tH=0; tP=((tHT) * 100) / elSize; } ob.css({ 'height': tH + 'px', 'padding-bottom': tP + '%' }); }; setCss(); if(obj.find('img').length){ if(obj.find('img')[0].complete){ setCss(); if(!interval){ $this.auto(); }}else{ obj.find('img').load(function (){ setTimeout(function (){ setCss(); if(!interval){ $this.auto(); }}, 100); }); }}else{ if(!interval){ $this.auto(); }} }, active: function (ob, t){ if(this.doCss()&&settings.mode==='fade'){ $slide.addClass('on'); } var sc=0; if(scene * settings.slideMove < length){ ob.removeClass('active'); if(!this.doCss()&&settings.mode==='fade'&&t===false){ ob.fadeOut(settings.speed); } if(t===true){ sc=scene; }else{ sc=scene * settings.slideMove; } var l, nl; if(t===true){ l=ob.length; nl=l - 1; if(sc + 1 >=l){ sc=nl; }} if(settings.loop===true&&settings.mode==='slide'){ if(t===true){ sc=scene - $el.find('.clone.left').length; }else{ sc=scene * settings.slideMove; } if(t===true){ l=ob.length; nl=l - 1; if(sc + 1===l){ sc=nl; }else if(sc + 1 > l){ sc=0; }} } if(!this.doCss()&&settings.mode==='fade'&&t===false){ ob.eq(sc).fadeIn(settings.speed); } ob.eq(sc).addClass('active'); }else{ ob.removeClass('active'); ob.eq(ob.length - 1).addClass('active'); if(!this.doCss()&&settings.mode==='fade'&&t===false){ ob.fadeOut(settings.speed); ob.eq(sc).fadeIn(settings.speed); }} }, move: function (ob, v){ if(settings.rtl===true){ v=-v; } if(this.doCss()){ if(settings.vertical===true){ ob.css({ 'transform': 'translate3d(0px, ' + (-v) + 'px, 0px)', '-webkit-transform': 'translate3d(0px, ' + (-v) + 'px, 0px)' }); }else{ ob.css({ 'transform': 'translate3d(' + (-v) + 'px, 0px, 0px)', '-webkit-transform': 'translate3d(' + (-v) + 'px, 0px, 0px)', }); }}else{ if(settings.vertical===true){ ob.css('position', 'relative').animate({ top: -v + 'px' }, settings.speed, settings.easing); }else{ ob.css('position', 'relative').animate({ left: -v + 'px' }, settings.speed, settings.easing); }} var $thumb=$slide.parent().find('.lSPager').find('li'); this.active($thumb, true); }, fade: function (){ this.active($children, false); var $thumb=$slide.parent().find('.lSPager').find('li'); this.active($thumb, true); }, slide: function (){ var $this=this; refresh.calSlide=function (){ if(w > elSize){ slideValue=$this.slideValue(); $this.active($children, false); if((slideValue) > w - elSize - settings.slideMargin){ slideValue=w - elSize - settings.slideMargin; }else if(slideValue < 0){ slideValue=0; } $this.move($el, slideValue); if(settings.loop===true&&settings.mode==='slide'){ if(scene >=(length - ($el.find('.clone.left').length / settings.slideMove))){ $this.resetSlide($el.find('.clone.left').length); } if(scene===0){ $this.resetSlide($slide.find('.lslide').length); }} }}; refresh.calSlide(); }, resetSlide: function (s){ var $this=this; $slide.find('.lSAction a').addClass('disabled'); setTimeout(function (){ scene=s; $slide.css('transition-duration', '0ms'); slideValue=$this.slideValue(); $this.active($children, false); plugin.move($el, slideValue); setTimeout(function (){ $slide.css('transition-duration', settings.speed + 'ms'); $slide.find('.lSAction a').removeClass('disabled'); }, 50); }, settings.speed + 100); }, slideValue: function (){ var _sV=0; if(settings.autoWidth===false){ _sV=scene * ((slideWidth + settings.slideMargin) * settings.slideMove); }else{ _sV=0; for (var i=0; i < scene; i++){ _sV +=(parseInt($children.eq(i).width()) + settings.slideMargin); }} return _sV; }, slideThumb: function (){ var position; switch (settings.currentPagerPosition){ case 'left': position=0; break; case 'middle': position=(elSize / 2) - (thumbWidth / 2); break; case 'right': position=elSize - thumbWidth; } var sc=scene - $el.find('.clone.left').length; var $pager=$slide.parent().find('.lSPager'); if(settings.mode==='slide'&&settings.loop===true){ if(sc >=$pager.children().length){ sc=0; }else if(sc < 0){ sc=$pager.children().length; }} var thumbSlide=sc * ((thumbWidth + settings.thumbMargin)) - (position); if((thumbSlide + elSize) > pagerWidth){ thumbSlide=pagerWidth - elSize - settings.thumbMargin; } if(thumbSlide < 0){ thumbSlide=0; } this.move($pager, thumbSlide); }, auto: function (){ if(settings.auto){ clearInterval(interval); interval=setInterval(function (){ $el.goToNextSlide(); }, settings.pause); }}, pauseOnHover: function(){ var $this=this; if(settings.auto&&settings.pauseOnHover){ $slide.on('mouseenter', function(){ $(this).addClass('ls-hover'); $el.pause(); settings.auto=true; }); $slide.on('mouseleave',function(){ $(this).removeClass('ls-hover'); if(!$slide.find('.lightSlider').hasClass('lsGrabbing')){ $this.auto(); }}); }}, touchMove: function (endCoords, startCoords){ $slide.css('transition-duration', '0ms'); if(settings.mode==='slide'){ var distance=endCoords - startCoords; var swipeVal=slideValue - distance; if((swipeVal) >=w - elSize - settings.slideMargin){ if(settings.freeMove===false){ swipeVal=w - elSize - settings.slideMargin; }else{ var swipeValT=w - elSize - settings.slideMargin; swipeVal=swipeValT + ((swipeVal - swipeValT) / 5); }}else if(swipeVal < 0){ if(settings.freeMove===false){ swipeVal=0; }else{ swipeVal=swipeVal / 5; }} this.move($el, swipeVal); }}, touchEnd: function (distance){ $slide.css('transition-duration', settings.speed + 'ms'); if(settings.mode==='slide'){ var mxVal=false; var _next=true; slideValue=slideValue - distance; if((slideValue) > w - elSize - settings.slideMargin){ slideValue=w - elSize - settings.slideMargin; if(settings.autoWidth===false){ mxVal=true; }}else if(slideValue < 0){ slideValue=0; } var gC=function (next){ var ad=0; if(!mxVal){ if(next){ ad=1; }} if(!settings.autoWidth){ var num=slideValue / ((slideWidth + settings.slideMargin) * settings.slideMove); scene=parseInt(num) + ad; if(slideValue >=(w - elSize - settings.slideMargin)){ if(num % 1!==0){ scene++; }} }else{ var tW=0; for (var i=0; i < $children.length; i++){ tW +=(parseInt($children.eq(i).width()) + settings.slideMargin); scene=i + ad; if(tW >=slideValue){ break; }} }}; if(distance >=settings.swipeThreshold){ gC(false); _next=false; }else if(distance <=-settings.swipeThreshold){ gC(true); _next=false; } $el.mode(_next); this.slideThumb(); }else{ if(distance >=settings.swipeThreshold){ $el.goToPrevSlide(); }else if(distance <=-settings.swipeThreshold){ $el.goToNextSlide(); }} }, enableDrag: function (){ var $this=this; if(!isTouch){ var startCoords=0, endCoords=0, isDraging=false; $slide.find('.lightSlider').addClass('lsGrab'); $slide.on('mousedown', function (e){ if(w < elSize){ if(w!==0){ return false; }} if($(e.target).attr('class')!==('lSPrev')&&$(e.target).attr('class')!==('lSNext')){ startCoords=(settings.vertical===true) ? e.pageY:e.pageX; isDraging=true; if(e.preventDefault){ e.preventDefault(); }else{ e.returnValue=false; } $slide.scrollLeft +=1; $slide.scrollLeft -=1; $slide.find('.lightSlider').removeClass('lsGrab').addClass('lsGrabbing'); clearInterval(interval); }}); $(window).on('mousemove', function (e){ if(isDraging){ endCoords=(settings.vertical===true) ? e.pageY:e.pageX; $this.touchMove(endCoords, startCoords); }}); $(window).on('mouseup', function (e){ if(isDraging){ $slide.find('.lightSlider').removeClass('lsGrabbing').addClass('lsGrab'); isDraging=false; endCoords=(settings.vertical===true) ? e.pageY:e.pageX; var distance=endCoords - startCoords; if(Math.abs(distance) >=settings.swipeThreshold){ $(window).on('click.ls', function (e){ if(e.preventDefault){ e.preventDefault(); }else{ e.returnValue=false; } e.stopImmediatePropagation(); e.stopPropagation(); $(window).off('click.ls'); }); } $this.touchEnd(distance); }}); }}, enableTouch: function (){ var $this=this; if(isTouch){ var startCoords={}, endCoords={}; $slide.on('touchstart', function (e){ endCoords=e.originalEvent.targetTouches[0]; startCoords.pageX=e.originalEvent.targetTouches[0].pageX; startCoords.pageY=e.originalEvent.targetTouches[0].pageY; clearInterval(interval); }); $slide.on('touchmove', function (e){ if(w < elSize){ if(w!==0){ return false; }} var orig=e.originalEvent; endCoords=orig.targetTouches[0]; var xMovement=Math.abs(endCoords.pageX - startCoords.pageX); var yMovement=Math.abs(endCoords.pageY - startCoords.pageY); if(settings.vertical===true){ if((yMovement * 3) > xMovement){ e.preventDefault(); } $this.touchMove(endCoords.pageY, startCoords.pageY); }else{ if((xMovement * 3) > yMovement){ e.preventDefault(); } $this.touchMove(endCoords.pageX, startCoords.pageX); }}); $slide.on('touchend', function (){ if(w < elSize){ if(w!==0){ return false; }} var distance; if(settings.vertical===true){ distance=endCoords.pageY - startCoords.pageY; }else{ distance=endCoords.pageX - startCoords.pageX; } $this.touchEnd(distance); }); }}, build: function (){ var $this=this; $this.initialStyle(); if(this.doCss()){ if(settings.enableTouch===true){ $this.enableTouch(); } if(settings.enableDrag===true){ $this.enableDrag(); }} $(window).on('focus', function(){ $this.auto(); }); $(window).on('blur', function(){ clearInterval(interval); }); $this.pager(); $this.pauseOnHover(); $this.controls(); $this.keyPress(); }}; plugin.build(); refresh.init=function (){ refresh.chbreakpoint(); if(settings.vertical===true){ if(settings.item > 1){ elSize=settings.verticalHeight; }else{ elSize=$children.outerHeight(); } $slide.css('height', elSize + 'px'); }else{ elSize=$slide.outerWidth(); } if(settings.loop===true&&settings.mode==='slide'){ refresh.clone(); } refresh.calL(); if(settings.mode==='slide'){ $el.removeClass('lSSlide'); } if(settings.mode==='slide'){ refresh.calSW(); refresh.sSW(); } setTimeout(function (){ if(settings.mode==='slide'){ $el.addClass('lSSlide'); }}, 1000); if(settings.pager){ refresh.createPager(); } if(settings.adaptiveHeight===true&&settings.vertical===false){ $el.css('height', $children.eq(scene).outerHeight(true)); } if(settings.adaptiveHeight===false){ if(settings.mode==='slide'){ if(settings.vertical===false){ plugin.setHeight($el, false); }else{ plugin.auto(); }}else{ plugin.setHeight($el, true); }} if(settings.gallery===true){ plugin.slideThumb(); } if(settings.mode==='slide'){ plugin.slide(); } if(settings.autoWidth===false){ if($children.length <=settings.item){ $slide.find('.lSAction').hide(); }else{ $slide.find('.lSAction').show(); }}else{ if((refresh.calWidth(false) < elSize)&&(w!==0)){ $slide.find('.lSAction').hide(); }else{ $slide.find('.lSAction').show(); }} }; $el.goToPrevSlide=function (){ if(scene > 0){ settings.onBeforePrevSlide.call(this, $el, scene); scene--; $el.mode(false); if(settings.gallery===true){ plugin.slideThumb(); }}else{ if(settings.loop===true){ settings.onBeforePrevSlide.call(this, $el, scene); if(settings.mode==='fade'){ var l=(length - 1); scene=parseInt(l / settings.slideMove); } $el.mode(false); if(settings.gallery===true){ plugin.slideThumb(); }}else if(settings.slideEndAnimation===true){ $el.addClass('leftEnd'); setTimeout(function (){ $el.removeClass('leftEnd'); }, 400); }} }; $el.goToNextSlide=function (){ var nextI=true; if(settings.mode==='slide'){ var _slideValue=plugin.slideValue(); nextI=_slideValue < w - elSize - settings.slideMargin; } if(((scene * settings.slideMove) < length - settings.slideMove)&&nextI){ settings.onBeforeNextSlide.call(this, $el, scene); scene++; $el.mode(false); if(settings.gallery===true){ plugin.slideThumb(); }}else{ if(settings.loop===true){ settings.onBeforeNextSlide.call(this, $el, scene); scene=0; $el.mode(false); if(settings.gallery===true){ plugin.slideThumb(); }}else if(settings.slideEndAnimation===true){ $el.addClass('rightEnd'); setTimeout(function (){ $el.removeClass('rightEnd'); }, 400); }} }; $el.mode=function (_touch){ if(settings.adaptiveHeight===true&&settings.vertical===false){ $el.css('height', $children.eq(scene).outerHeight(true)); } if(on===false){ if(settings.mode==='slide'){ if(plugin.doCss()){ $el.addClass('lSSlide'); if(settings.speed!==''){ $slide.css('transition-duration', settings.speed + 'ms'); } if(settings.cssEasing!==''){ $slide.css('transition-timing-function', settings.cssEasing); }} }else{ if(plugin.doCss()){ if(settings.speed!==''){ $el.css('transition-duration', settings.speed + 'ms'); } if(settings.cssEasing!==''){ $el.css('transition-timing-function', settings.cssEasing); }} }} if(!_touch){ settings.onBeforeSlide.call(this, $el, scene); } if(settings.mode==='slide'){ plugin.slide(); }else{ plugin.fade(); } if(!$slide.hasClass('ls-hover')){ plugin.auto(); } setTimeout(function (){ if(!_touch){ settings.onAfterSlide.call(this, $el, scene); }}, settings.speed); on=true; }; $el.play=function (){ $el.goToNextSlide(); settings.auto=true; plugin.auto(); }; $el.pause=function (){ settings.auto=false; clearInterval(interval); }; $el.refresh=function (){ refresh.init(); }; $el.getCurrentSlideCount=function (){ var sc=scene; if(settings.loop){ var ln=$slide.find('.lslide').length, cl=$el.find('.clone.left').length; if(scene <=cl - 1){ sc=ln + (scene - cl); }else if(scene >=(ln + cl)){ sc=scene - ln - cl; }else{ sc=scene - cl; }} return sc + 1; }; $el.getTotalSlideCount=function (){ return $slide.find('.lslide').length; }; $el.goToSlide=function (s){ if(settings.loop){ scene=(s + $el.find('.clone.left').length - 1); }else{ scene=s; } $el.mode(false); if(settings.gallery===true){ plugin.slideThumb(); }}; $el.destroy=function (){ if($el.lightSlider){ $el.goToPrevSlide=function(){}; $el.goToNextSlide=function(){}; $el.mode=function(){}; $el.play=function(){}; $el.pause=function(){}; $el.refresh=function(){}; $el.getCurrentSlideCount=function(){}; $el.getTotalSlideCount=function(){}; $el.goToSlide=function(){}; $el.lightSlider=null; refresh={ init:function(){}}; $el.parent().parent().find('.lSAction, .lSPager').remove(); $el.removeClass('lightSlider lSFade lSSlide lsGrab lsGrabbing leftEnd right').removeAttr('style').unwrap().unwrap(); $el.children().removeAttr('style'); $children.removeClass('lslide active'); $el.find('.clone').remove(); $children=null; interval=null; on=false; scene=0; }}; setTimeout(function (){ settings.onSliderLoad.call(this, $el); }, 10); $(window).on('resize orientationchange', function (e){ setTimeout(function (){ if(e.preventDefault){ e.preventDefault(); }else{ e.returnValue=false; } refresh.init(); }, 200); }); return this; };}(jQuery));